/*
 * 文件名：ShoppingCartDao.java
 * 版权：Copyright by hlst
 * 描述：
 * 修改人：liuziyu
 * 修改时间：2016年7月14日
 * 跟踪单号：
 * 修改单号：
 * 修改内容：
 */

package com.zcsy.manage.persistence.mall;

import java.util.List;
import java.util.Map;

import com.zcsy.manage.model.mall.ShoppingCart;

public interface ShoppingCartDao {
	

	/**
	 * @Description 加入购物车<br>
	 * 
	 * @param cart 加入购物车对象
	 * @return 1：加入成功 0：加入失败
	 * @author caiyinli 13277030520@163.com
	 * @date 2016年7月15日
	 * @see 
	 */
	int insertToCart(ShoppingCart cart);

	/**
	 * @Method: addAmount
	 * @Description 增加商品数量
	 * @param userAccount
	 * @param goodsId
	 * @return 
	 * @author liuziyu liuziyuwri@foxmail.com
	 * @date 2016年7月14日
	 * @see 
	 */
	int addAmount(String userAccount, String goodsId);
	
	/**
	 * @Method: reduceAmount
	 * @Description 减少商品数量
	 * @param userAccount
	 * @param goodsId
	 * @return 
	 * @author liuziyu liuziyuwri@foxmail.com
	 * @date 2016年7月14日
	 * @see 
	 */
	int reduceAmount(String userAccount, String goodsId);
	
	/**
	 * @Method: setAmount
	 * @Description 设置商品数量
	 * @param map
	 * @return 
	 * @author liuziyu liuziyuwri@foxmail.com
	 * @date 2016年7月14日
	 * @see 
	 */
	int setAmount(Map<String, Object> map);
	
	/**
	 * @Method: getCartInfo
	 * @Description 返回购物车信息
	 * @param userAccount
	 * @param goodsId
	 * @return 
	 * @author liuziyu liuziyuwri@foxmail.com
	 * @date 2016年7月14日
	 * @see 
	 */
	ShoppingCart getCartInfo(String cartId);

	/**
	 * @Description  获取某商品已经存在的记录<br>
	 * 
	 * @param cart 要查询的商品信息
	 * @return 返回的购物车商品记录，或返回空
	 * @author caiyinli 13277030520@163.com
	 * @date 2016年7月15日
	 * @see 
	 */
	ShoppingCart selectExistCart(ShoppingCart cart);
	
	Integer getUserCartNum(String account);
	
	/** 
	 * @Title: updateCartAmount 
	 * @Description: 更新购物车数量
	 * @param @param cart	购物车商品记录
	 * @param @return     
	 * @return int     成功或者失败
	 * @throws 
	 */
	public int updateCartAmount(ShoppingCart cart);
	
	/**
	 * @Method: deleteByPrimaryKey
	 * @Description 根据主键移除购物车
	 * @param cartId
	 * @return 
	 * @author liuziyu liuziyuwri@foxmail.com
	 * @date 2016年7月15日
	 * @see 
	 */
	int deleteByPrimaryKey(String cartId);
	
	/** 
	 * @Title: selectSettleCart 
	 * @Description: 获取要结算的购物车列表
	 * @param @param ids	购物车记录ID
	 * @param @return     
	 * @return List<OrderCart>     购物车列表
	 * @throws 
	 */
	public List<ShoppingCart> selectSettleCart(String[] ids);
	
	/** 
	 * @Title: delOwnerCart 
	 * @Description: 批量删除购物车记录，物理删除
	 * @param @param ids	购物车记录ID集合
	 * @param @return     
	 * @return int     成功或者失败
	 * @throws 
	 */
	public int delOwnerCart(String[] ids);
	
	/**
     * 根据当前登陆人账号和当前小区信息查询购物车信息
     * @Method: queryShoppingCart
     * @param userAccount 登陆人账号
     * @param cellId 小区Id
     * @author hubing
     * @date 2016年8月2日
     */
    public List<ShoppingCart> queryShoppingCart(String userAccount, String cellId);
}
